import { IPSLanguageRes } from '../res/ipslanguage-res';
import { IPSSystemModule } from '../system/ipssystem-module';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysMsgTempl
 */
export interface IPSSysMsgTempl extends IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 内容
   * @type {string}
   */
  content: string;

  /**
   * 内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getContentPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get contentPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 内容多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getContentPSLanguageResMust(): IPSLanguageRes;

  /**
   * 内容类型
   * @description 值模式 [系统消息模板内容类型] {TEXT：纯文本、 HTML：HTML网页、 JSON：JSON、 PROPERTIES：Properties、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'TEXT' | 'HTML' | 'JSON' | 'PROPERTIES' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  contentType: string | 'TEXT' | 'HTML' | 'JSON' | 'PROPERTIES' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 钉钉内容
   * @type {string}
   */
  dDContent: string;

  /**
   * 钉钉内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getDDPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 钉钉内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get dDPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 钉钉内容多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getDDPSLanguageResMust(): IPSLanguageRes;

  /**
   * 即时消息内容
   * @type {string}
   */
  iMContent: string;

  /**
   * 即时消息多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getIMPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 即时消息多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get iMPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 即时消息多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getIMPSLanguageResMust(): IPSLanguageRes;

  /**
   * 移动端任务操作路径
   * @type {string}
   */
  mobTaskUrl: string;

  /**
   * 系统模块
   *
   * @type {IPSSystemModule}
   */
  getPSSystemModule(): IPSSystemModule | null;

  /**
   * 系统模块
   *
   * @type {IPSSystemModule}
   */
  get psSystemModule(): IPSSystemModule | null;

  /**
   * 系统模块（必须存在）
   *
   * @type {IPSSystemModule}
   */
  getPSSystemModuleMust(): IPSSystemModule;

  /**
   * 短消息内容
   * @type {string}
   */
  sMSContent: string;

  /**
   * 短消息多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getSMSPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 短消息多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get sMSPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 短消息多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getSMSPSLanguageResMust(): IPSLanguageRes;

  /**
   * 标题多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getSubPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get subPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getSubPSLanguageResMust(): IPSLanguageRes;

  /**
   * 标题
   * @type {string}
   */
  subject: string;

  /**
   * 任务操作路径
   * @type {string}
   */
  taskUrl: string;

  /**
   * 微信内容
   * @type {string}
   */
  wXContent: string;

  /**
   * 微信内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  getWXPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 微信内容多语言资源对象
   *
   * @type {IPSLanguageRes}
   */
  get wXPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 微信内容多语言资源对象（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getWXPSLanguageResMust(): IPSLanguageRes;

  /**
   * 邮件群组发送
   * @type {boolean}
   */
  mailGroupSend: boolean;
}
